home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
data
/
dora
/
doraonln.plp
< prev
next >
Wrap
Text File
|
1995-08-15
|
25KB
|
866 lines
/* 共通処理の定義 */
/* 通信時間記録処理 */
%RECTIME{%dt @getdt;
%time @linetime;
%hh time/3600;
%hh @case(@nochar(hh),1,{im({0}|hh)},,{im(hh)});
%mm (time-time/3600*3600)/60;
%mm @case(@nochar(mm),1,{im({0}|mm)},,{im(mm)});
%ss time-time/60*60;
%ss @case(@nochar(ss),1,{im({0}|ss)},,{im(ss)});
TELNO := @head(sROAD,{/});
mkdir2(LOG2|{アクセスdat});
write(LOG2|{アクセスdat\CONNECT.DAT},
{tel no=}|TELNO|
{; logout=}|@getchar(dt,1,10)|{ }|@getchar(dt,17,8)|
{; time=}|hh|{h}|mm|{m}|ss|{s}|
{; id=}|ID|{;\n});
};
/*MAIN メニューに復帰要否の判断処理*/
%preRetM{
loop({
wait (3,{retMAIN;im({No})}
,{MAIL},{type({0\n});im({Yes})}
,{FILE},{type({0\n});im({Yes})}
,{SELECT},{type({Q\n});im({Yes})}
,{もう帰っちゃうの},{type({N\n});im({Yes})}
,{ログアウトしますか},{type({N\n});im({Yes})}
,{☆},{im({No})}
,{Q:Quit},{type({Q\n});im({Yes})}
,{,Q},{type({Q\n});im({Yes})}
,{,O},{im({No})}
,{MAIN},{im({No})}
,{メイン},{im({No})}
,{メイン},{im({No})}
,{ch},{im({No})}
)
})
};
/*MAIN メニューに復帰する処理 */
%retMAIN{wait(2);
loop ({
wait (3,{type({\n});im({Yes})}
,{T,S,C,X,Y,G,Z,M,B,E,K,H,?,0,Q},
{WaitMK;type({0|Q\n});im({Yes})}
,{,Q},{WaitMK;type({Q\n});im({Yes})}
,{Q:Quit},{WaitMK;type({Q\n});im({Yes})}
,{A,D,M,U,W,},{WaitMK;type({0\n});im({Yes})}
,{quit},{WaitMK;type({0\n});im({Yes})}
,{FILE},{WaitMK;type({0|Q\n});im({Yes})}
,{?,0},{WaitMK;type({0|Q\n});im({Yes})}
,{\n= MAIN =},{WaitMKB;im({No})}
,{[36m= MAIN =},{WaitMKB;im({No})}
,{\nメイン},{WaitMKB;im({No})}
,{:メイン},{WaitMKB;im({No})}
,{36mメイン},{WaitMKB;im({No})}
,{メイン},{WaitMKB;im({No})}
,{,O},{WaitMKB;im({No})}
,{[36mMAIN},{WaitMKB;im({No})}
,{\nMAIN },{WaitMKB;im({No})}
,{# },{WaitMK;type({//|0|Q\n});im({Yes})}
,{,\,?,},{WaitMKB;im({No})}
);
});
};
/*「<」を待つ共通処理*/
%WaitMK {
loop ({
wait (5,{type({\n});im({Yes})}
,{ヘルプ 表示},{im({No})} /*やぎネット対応*/
,{>},{im({No})})
});
};
/*ボード指定巡回で「<」を待つ共通処理*/
%WaitMKB{
loop ({
wait (Wtime5,{type({\n});im({Yes})}
,{FILE},{im({Yes})}
,{BOARD},{im({Yes})}
,{>},{im({No})})
});
};
/*FNEWSの終了時にやぎネットと通常ネットとの判定処理*/
%WaitFNEW{
loop ({
wait (Wtime5,{type({\n});im({Yes})}
,{ヘルプ 表示},{type({0\n});im({No})}
,{>},{type({Q\n});im({No})})
});
};
/*loop先で「<」を待つ処理*/
%WaitMKD{wait (2,,{<},{})};
/* ライブラリーの最新登録状況を見る共通処理 */
/* リスト取得処理 */
%TypeL{ [paSS]
footnote({ファイルボードに移動しました});
WaitMK;type({L\n});
wait (3,{type({\n})},{>},{wait(2);type({\n})});
var file[64];
file:=LOG2|{DATALIB\#}|MesNo|{DLIB.DAT};
delfile(file);
case (paSS=NET,
{Yes}, {write(file,{ファイルボードNo#}|MesNo|
{ & パスワードは設定されていません・・・・・\n});},
{No}, {write(file,{ファイルボードNo#}|MesNo|
{ & パスワード}|paSS|{・・・・・です。\n});
});
DOWNCHECK;
receive(file);LIBprom2;im({No})
};
%LIBprom1{[mesNo,paSS] var MesNo[3];
case (@nochar(mesNo),
{3},{MesNo:=mesNo},{2},{MesNo:={0}|mesNo},
{1},{MesNo:={00}|mesNo});
loop({
wait ({3},{im({Yes})}
,{ボードのグループではありません},
{WaitMK;type({Q\n});im({No})}
,{ボードには入れ},{WaitMK;type({Q\n});im({No})}
,{ボードが見つか},{WaitMK;type({Q\n});im({No})}
,{検索出来ません},{WaitMK;type({0|Q\n});im({No})}
,{ダウンロード制限},{WaitMK;type({0|Q\n});im({No})}
,{ヘルプ 表示},{TypeL(paSS)}
,{quit},{TypeL(paSS)}
,{,Q},{TypeL(paSS)}
,{,?,P,0},{TypeL(paSS)}
,{,?,0},{TypeL(paSS)}
);
});
};
%LIBprom2{
%time1 @linetime;
%TimeCHK{
%time2 @linetime-time1;
case (DEBUG,{Yes},
{display({タイムチェック実行 time=}|time2|{です\n});
});
wait(1);
case (time2>1/6,
{No},{type({\n});im({Yes})},
{Yes},{type({\n});im({No});
display({\n次の処理に移ります。 time=}|time2|{です\n})
});
};
loop ({
wait(5, {type({0\n});im({Yes})}
,{\n= MAIN =},{TimeCHK}
,{[36m= MAIN =},{TimeCHK}
,{36mメイン},{TimeCHK}
,{:メイン},{TimeCHK}
,{\nメイン},{TimeCHK}
,{36mMAIN},{TimeCHK}
,{\nMAIN },{TimeCHK}
,{,Q},{WaitMK;type({Q\n});im({Yes})}
,{[36mFILE},{DOWNSTOP;WaitMK;type({0\n});im({Yes})}
,{\nFILE},{DOWNSTOP;WaitMK;type({0\n});im({Yes})}
,{ヘルプ 表示},{DOWNSTOP;WaitMK;type({0\n});im({Yes})}
,{quit},{DOWNSTOP;WaitMK;type({0\n});im({Yes})}
,{検索中止},{DOWNSTOP;WaitMK;type({0\n});im({Yes})}
,{検索が終了},{DOWNSTOP;WaitMK;type({0\n});im({Yes})});
});preRetM;
};
/* アクセス毎にメモに書き込む処理 */
%PLTMEMO{
footnote({メモ書き込み情報に「オートパイロットDORAでアクセス中」}|
{を登録します});
/*preRetM;*/type({\\\n});WaitMK;
type({オートパイロットDORAでアクセス中});type({\n});
};
%PLTMend{preRetM;
footnote({メモ書き込み情報を初期値にします});
type({\\\n});WaitMK;
type(afMEMO);type({\n});
};
/* receiveプロトコルの判定 */
%RECbin{ [datafile]
wait(1);
display({\nダウンロード先は}|datafile|{です});
case (CHeck,
{Yes},{stoprec},{No},,,{stoprec});
case (@tail(@version,{for },{ })={Win31},
{Yes},
{setbin(BINty);
case(BINty={Z-modem},{No},{wait(3);recbin(datafile)})},
{No},
{case (TBINty,
{X-modem},{receivex(datafile)},
{Y-modem},{receivey(datafile)}
);
});
CHeck:={No};
};
/* sendプロトコルの判定 */
%SENDbin{ [datafile]
display({\n}|datafile|{をアップロードします});
case (@tail(@version,{for },{ })={Win31},
{Yes},{sendbin(datafile)},
{No},
{case (TBINty,
{X-modem},{footnote({sendxで送信中});sendx(datafile)},
{Y-modem},{footnote({sendyで送信中});sendy(datafile)}
);
});
};
/*異常切断処理*/
%AbortOff{ [CommentB]
display(CommentB);SNDMSG({okasi_f.snd});
display({\n}|NET|{-NETとの通信を強制切断します\n});
discon;RECTIME;display({\nモデムを直接切断しました\n\n});
ClosePort;
SNDMSG({owata_f.snd});footnote({});stop
};
/*切断処理 及び 切断終了表示処理*/
%LogOff {var n[2];n:=0;
endWD:={//};wait(3);
%LAST
{wait(1);
case (@filechk(UP2|{SAIGO}),
{Yes},{DOWNSTOP;send(UP2|{SAIGO});
type({\n//\n});delfile(UP2|{SAIGO});DOWNSTART
},
{No},{wait({2},,{Gather},{},{>},{});type(endWD|{\n})}
)
};
%LAST1{im({No})};
%LAST2{type({Y\n});im({Yes})};
footnote({終了処理中});type({0|0|Q\n});
preRetM;type({O\n});DOWNSTART;
wait(Wtime2,{type({Y\n})},{かえっちゃう},{type({Y\n})},{字},{},
{:},{},{------},{},{Logoff},{},{ログアウト},{type({Y\n})});
loop ({
wait ({3},{im({Yes})}
,{ログアウト},{type({Y\n});im({Yes})}
,{RET},{endWD:={};im({Yes})}
,{Gather},{LAST;im({No})}
,{------->},{LAST;im({No})}
,{30----+},{LAST;im({No})}
,{30[34m----+},{LAST;im({No})}
,{伝言板},{type({N\n});im({Yes})}
,{今回},{im({No})}
,{保管},{im({No})}
,{接続時間},{im({No})}
,{Disconnected},{im({No})}
,{Logoff},{im({No})}
,{Timepass},{im({No})}
)
});
loop ({
n:=n+1;
footnote({終了処理を行います。});
case (n>5,
{Yes},
{case (n=7,
{Yes},{type({\n//\n});LAST1},
{No},{footnote({強制終了処理を行います。});
im({Yes})}
)
},
{No},
{wait (3,{im({Yes})}
,{ログアウト},{LAST2}
,{プッチン},{LAST1}
,{きれた},{LAST1}
,{回線切断},{im({Yes})}
,{NO CARRIER},{LAST1}
,{Disconnected},{LAST1});
})
});
discon;
RECTIME;SNDMSG({owata_f.snd});footnote({});DOWNSTOP;
ClosePort;
case(@filechk(TEMP2|{_maltxt.tmp}),
{Yes},{
mkdir2(LOG2|{MAILlist});delfile(LOG2|{MAILlist\TXTMAIL.DAT});
%a LOG2|{MAILlist\TXTMAIL.DAT};
%b @LINECUT(@read(TEMP2|{_maltxt.tmp}));
write(a,b);delfile(TEMP2|{_maltxt.tmp})
});
delfile(TEMP2|{_whotext.tmp});White;
im({No})};
/* ダウンロード開始と終了の処理 */
/* LOG DOWN START */
%DOWNSTART{
case (CHeck,
{Yes},{stoprec},{No},);
mkdir2(@body(LOG2,,{\}));
DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2)|@getchar(DAY1,9,2));
case (DEBUG,{Yes},
{display({\n☆DOWNSTART\n})});
CHeck:={Yes};
receive(LOG2|NET|DAY2|{.LOG})
};
/* LOG DOWN CHECK */
%DOWNCHECK{
case (CHeck={Yes},
{Yes},{stoprec},{No},);
case (DEBUG,{Yes},
{display({\n☆DOWNCHECK\n})});
CHeck:={Yes}
};
/* LOG DOWN STOP */
%DOWNSTOP{
case (CHeck,
{Yes},{stoprec},{No},);
CHeck:={No};
case (DEBUG,{Yes},
{display({\n☆DOWNSTOP\n})});
setcdir(CDIR)
};
/* 「ago」前の年月日を「YYYY/MM/DD」の形式で返す */
%getday{[ago]
var today[25];var YEAR[5];var MONTH[5];var DAY[5];
%plus {[DATA]
case(@nochar(DATA),
{1},{im({0}|DATA)},
{2},{im(DATA)}
)
};
%lastmonth{case(@plus(MONTH),
{01},{im({31})},{02},{im({31})},{03},{im({28})},
{04},{im({31})},{05},{im({30})},{06},{im({31})},
{07},{im({30})},{08},{im({31})},{09},{im({31})},
{10},{im({30})},{11},{im({31})},{12},{im({30})
})};
today:=@daylong; YEAR :=@getchar(today,1,4);
MONTH:=@getchar(today,6,2); DAY :=@getchar(today,9,2);
case(DAY-ago<1,{Yes},{
loop({ DAY:=DAY+@lastmonth;
case(@plus(MONTH),
{01},{MONTH:=12; YEAR:=YEAR-1},
,{MONTH:=MONTH-1}
);
im(DAY-ago<1);
})});
DAY:=DAY-ago;
im(YEAR|{/}|@plus(MONTH)|{/}|@plus(DAY))};
/*ダウンレート計算処理ステップ2「loopとdnld共通処理」*/
%BRTtime{[datafile]
%rate Fsize/timePS;
%date @getdt;
display({\n}|Fsize|{バイトダウンするのに}|timePS|
{秒くらいかかりました。約}|rate|{byte/sec。\n});
case (@filechk(LOG2|{アクセスdat\downrate.dat}),
{No},
{write(LOG2|{アクセスdat\downrate.dat},
{日付 時刻 ファイル名 サイズ}|
{ 時間 byte/sec 通信速度 電話番号\n})}
);
%name @SPP(@body(@tail(datafile,{\}),,{.}),8,1)|{.}|
@tail(@tail(datafile,{\}),{.});
write(LOG2|{アクセスdat\downrate.dat},
@getchar(date,3,8)|{ }|
@getchar(date,17,5)|{ }|
name|
@SPP(Fsize,7,)|@SPP(timePS,5,)|{秒}|
@SPP(rate,4,)|
@SPP(@tail(sROAD,{/}),6,)|{bps }|
@head(sROAD,{/})|{\n});
SNDMSG({owata_f.snd});type({\n});
};
/*DIGITAL-BBSTYPEのB-MAILダウン*/
/*DIGtypeか否かの判定*/
%DIGtype{
var Fsize[10];var datafile[64];var docfile[64];var name[30];
display(name);mkdir2(LOG2|{BMAIL});
delfile(TEMP2|{_bmaltxt.tmp});
DOWNCHECK;receive(TEMP2|{_bmaltxt.tmp});
wait (Wtime2,,
{MAIN},,
{メイン},,
{,#,},,
{メイン},,
{☆},,
{ch},,
{Protocol},{doDIG});
DOWNSTOP;DOWNSTART;
};
/*B-MAILダウン*/
%doDIG {
case (ESCon={No},
{No}, {dispoff(!DEBUG);command(CDIR2|{escctr -d}|TEMP2|
{ -K}|TEMP2|{ }|TEMP2|{_bmaltxt.tmp});dispoff({No})});
%a @read(TEMP2|{_bmaltxt.tmp});
name:=@head(@tail(a,{ファイル名 : }),{\n});
datafile:=LOG2|{BMAIL\}|name;
docfile:=LOG2|{BMAIL\}|@body(name,,{.})|{.ggg};
%Bytes @head(@tail(a,{ブロック数 : }),{\n});
Fsize:= @head(@tail(a,{ブロック数 : }),{\n})*128;
type(binop|{\n});
wait ({5}, {
%timeP @linetime;RECbin(datafile);
%timePS @linetime-timeP;type({\n});BRTtime(datafile);
wait (WtimeD,,
{MAIN},,
{MAIL},,
{成功},);
}
,{で中断},
{
%timeP @linetime;RECbin(datafile);
%timePS @linetime-timeP;type({\n});BRTtime(datafile);
wait (WtimeD,,
{MAIN},,
{MAIL},,
{成功},);
}
,{ダウンロードに失敗しちゃったみたい},{}
,{ダウンロードに失敗しました},{}
,{ボードの指定が違います},
{display({データ番号が違うため次の処理を行います\n})}
);im({Yes})
};
/*B-MAILエラーコメント*/
%SKIP {wait(3);
SNDMSG({okasi_f.snd});
display({\n1、アップロード制御データが不足している。\n}|
{2、ネット側がバイナリメールに対応していない。\n}|
{3、バイナリメールコマンドが異なる。\n}|
{4、このバイナリメールシステムにDORAが対応していない。\n}|
{等の原因により処理をスキップします。\n});
write(UP2|{doraup.rsv},{保留;}|linebuf);
};
%Berr {
このネットのバイナリシステムにDORAが対応出来てない様です。
恐れ入りますが、DORAが停止する直前のログを
作者まで、お知らせください。
NIFTYのID=GBH00541
};
/* RTBBSへの通信メニュー */
%ONLINE {
var dortbbs[3];var DORTbbs[3];var access[2];var yoyaku[8];var updown[2]; var am3[2];FREE1:={ 2};LGLOOK:={ 2};BDLIST:={ 2};DLLIST:={ 2};Am3:={};
loop ({
case(genteiT,
{Yes},{
footnote({現在のアクセス予定NO.=}|sROAD|{.通信可能時間=}
|openT|{時~}
|closeT|{時})},
{No},{
footnote({現在のアクセス予定NO.=}|sROAD|
{.通信可能時間=24時間})}
);
SNDMSG({erande_f.snd});
DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2)|@getchar(DAY1,9,2));
case (@filechk(LOG2|NET|DAY2|{.LOG}),
{No},{DORTBBS:={Yes}},
{Yes},{DORTBBS:={BoD}
});
dortbbs:=@case (DORTBBS,
{Yes},{im({1})},{BoD},{im({2})},
{No},{im({3})},,{im({2})});
updown:=@case (UPDOWN,
{first},{im({1})},{last},{im({2})},
{No},{im({3})},,{im({1})});
%maildel @case (MAILDEL|MAILRED,
{YesYes},{case(DelML,{other},{im({2})},,{im({1})})},
{YesNo},{case(DelML,{other},{im({2})},,{im({1})})},
{NoYes},{im({3})},{NoNo},{im({4})},,{im({3})});
%bmaldel @case (BMALDEL|BMALRED,
{YesYes},{case(DelBML,{other},{im({2})},,{im({1})})},
{YesNo},{case(DelBML,{other},{im({2})},,{im({1})})},
{NoYes},{im({3})},{NoNo},{im({4})},,{im({4})});
%jisaR @YesNo(JISAR,{1}); %free1 FREE1;
%pltmemo@YesNo(PLTmemo,{2}); %lglook LGLOOK;
%mactiv @YesNo(MACTIV,{2}); %bdlist @YesNo(BDLIST,{2});
%dllist @case (DLLIST,
{Yes},{im({1})},{new},{im({2})},
{No},{im({3})},,{im({3})});
case (genteiT,
{Yes} ,{am3:={ 1}},
{Detail},{am3:={ 2}},
{No} ,{am3:={ 3}},
,{am3:={ 3}}
);
%doraend @case(DORAEND,
{stopdora},{im({1})},
{stopmop},{im({2})},
{continue},{im({3})},
{poweroff},{im({4})},
,{im({3})});
var udtp[1]; udtp:=0;
case(@filechk(UP2|{doraup.ctl})||@filechk(UP2|{doradown.ctl}),
{Yes},{udtp:=udtp+1});
%d @case(udtp=1,{Yes},
{im({rアップ・ダウンロード処理(予約あり)/最初 /最後 /しない})},
{No},
{im({c(予約なし)})});
%e @case (@tail(@version,{for },{ })={Win31},
{Yes},
{im({ /DORA終了/MOPT終了/DORA継続})},
{No},
{im({/DORA終了/MOPT終了/DORA継続/電源切断})}
);
%f {r(}|NET|{での巡回処理) /ファイル&ボード/ボード/しない\n}|
d|{\n}|
{rメール処理 /既読DEL/既読DEL他/確認/しない\n}|
{rバイナリメール処理 /既読DEL/既読DEL他/確認/しない\n}|
{r伝言板を見る /する /しない\n}|
{r「オートパイロットでアクセス」メモをアップ /する /しない\n}|
{r未読ポインタ /7日前/3日前/1日前/前 回\n}|
{rLogin記録を見る / する /しない\n}|
{r会員名簿を取得 / する /しない\n}|
{rボードを見る / 一覧 /しない\n}|
{rファイルボードを見る / 一覧 /News/しない\n}|
{r自由行動 / する /しない\n}|
{r通信開始時間 /限定時刻/時刻指定/即時\n}|
{r通信終了後 }|e|{\n}|
{s設定変更処理 /BBS設定 /各種設定 }|
{/CH.選択 \n}|
{sアップ・ダウン指定設定処理 / アップロード / ダウンロード \n}|
{s通信を開始する /開 始/半自動 }|
{/終 了 \n};
%a @case(udtp,
0,
{im(@plane(f,dortbbs,maildel,bmaldel,
jisaR,pltmemo,4,LGLOOK,mactiv,bdlist,dllist,
FREE1,am3,doraend))
},
1,
{im(@plane(f,dortbbs,updown,maildel,bmaldel,
jisaR,pltmemo,4,LGLOOK,mactiv,bdlist,dllist,
FREE1,am3,doraend))
});
dortbbs:=@head(@getline(a,1,1),{\n});
case(udtp=1,{Yes},{updown:=@head(@getline(a,2,1),{\n})});
%maildel@head(@getline(a,2+udtp,1),{\n});
%bmaldel@head(@getline(a,3+udtp,1),{\n});
%jisaR @head(@getline(a,4+udtp,1),{\n});
%pltmemo@head(@getline(a,5+udtp,1),{\n});
%mpoint @head(@getline(a,6+udtp,1),{\n});
LGLOOK:=@head(@getline(a,7+udtp,1),{\n});
%mactiv @head(@getline(a,8+udtp,1),{\n});
%bdlist @head(@getline(a,9+udtp,1),{\n});
%dllist @head(@getline(a,10+udtp,1),{\n});
FREE1:= @head(@getline(a,11+udtp,1),{\n});
am3:= @head(@getline(a,12+udtp,1),{\n});
%doraend@head(@getline(a,13+udtp,1),{\n});
%setup @head(@getline(a,14+udtp,1),{\n});
%updnset@head(@getline(a,15+udtp,1),{\n});
%ok @head(@getline(a,16+udtp,1),{\n});
case (dortbbs,
{ 1},{DORTbbs:={Yes}},
{ 2},{DORTbbs:={BoD}},
{ 3},{DORTbbs:={No}},
,{DORTbbs:={Yes}});
case(updown,
{ 1},{UPDOWN:={first}},
{ 2},{UPDOWN:={last}},
{ 3},{UPDOWN:={No}},
,{UPDOWN:={first}});
case(maildel,
{ 1},{MAILDEL:={Yes};MAILRED:={No};DelML:={all}},
{ 2},{MAILDEL:={Yes};MAILRED:={No};DelML:={other}},
{ 3},{MAILDEL:={No};MAILRED:={Yes};DelML:={}},
,{MAILDEL:={No};MAILRED:={No};DelML:={}});
case(bmaldel,
{ 1},{BMALDEL:={Yes};BMALRED:={No};
DelBML:={all};BmalON:={Yes}},
{ 2},{BMALDEL:={Yes};BMALRED:={No};
DelBML:={other};BmalON:={Yes}},
{ 3},{BMALDEL:={No};BMALRED:={Yes};
DelBML:={};BmalON:={Yes}},
,{BMALDEL:={No};BMALRED:={No};
DelBML:={};BmalON:={No}});
case (jisaR,
{ 1},{JISAR:={Yes}},
{ 2},{JISAR:={No}},
,{JISAR:={Yes}});
case (pltmemo,
{ 1},{PLTmemo:={Yes}},
{ 2},{PLTmemo:={No}},
,{PLTmemo:={Yes}});
case (mpoint,
{ 1},{mPOINT:=@im(@getchar(@getday(7),3,8))},
{ 2},{mPOINT:=@im(@getchar(@getday(3),3,8))},
{ 3},{mPOINT:=@im(@getchar(@getday(1),3,8))},
{ 4},{mPOINT:={}});
case (am3,
{ 1},{AM3:={Yes}},
{ 2},{AM3:={Detail}},
{ 3},{AM3:={No}},
,{AM3:={No}});
case (doraend,
{ 1},{DORAEND:={stopdora}},
{ 2},{DORAEND:={stopmop}},
{ 3},{DORAEND:={continue}},
{ 4},{DORAEND:={poweroff}});
case (mactiv,
{ 1},{MACTIV:={Yes}},
{ 2},{MACTIV:={No}},
,{MACTIV:={Yes}});
case (bdlist,
{ 1},{BDLIST:={Yes}},
{ 2},{BDLIST:={No}},
,{BDLIST:={Yes}});
case (dllist,
{ 1},{DLLIST:={Yes}},
{ 2},{DLLIST:={new}},
{ 3},{DLLIST:={No}},
,{DLLIST:={No}});
case (ok,
{ 1},
{case (MAILRED={No}&&MAILDEL={No}&&DORTBBS={No}&&
UPDOWN={No},
{Yes}, {LOGIN1},
{No}, {ONLINE1})},
{ 2},{SEMIAUTO},
{ 3},{im({No})},
,
{
case (setup,
{ 1},{setcdir(CDIR);#DORATGK.PLP},
{ 2},{setcdir(CDIR);#DORASET.PLP},
{ 3},{selCH});
case (updnset,
{ 1},{setcdir(CDIR);#DORAUSET.PLP},
{ 2},{setcdir(CDIR);#DORADSET.PLP});
case (ok={ 0}&&setup={ 0}&&updnset={ 0},
{Yes},{selCH;im({No})},
{No},{im({Yes})});
})})};
/* メニュ-への(有り・無し)表示 */
%Arinasi{[arinasi]
case(arinasi,
{Yes},{im({有り})},
{No},{im({無し})},,{im({無オ})}
);
};
/* アクセスするチャンネル変更の処理 */
%selCH{
%bestCH@case(sROAD,ROAD,{im({1})},ROAD2,{im({2})},ROAD3,{im({3})},
ROAD4,{im({4})},,{im({1})});
SNDMSG({erande_f.snd});
loop ({
%a @plane(
{c これからアクセスする}|NET|{のチャンネルを選択して下さい。\n}|
{c ☆注意☆アクセス方法の選択が「固定」の場合に有効。☆\n}|
{c ch.1の電話番号=}|ROAD|{ \n}|
{c 時間限定 (}|@Arinasi(GEN)|{) \n}|
{c ch.2の電話番号=}|ROAD2|{ \n}|
{c 時間限定 (}|@Arinasi(GEN2)|{) \n}|
{c ch.3の電話番号=}|ROAD3|{ \n}|
{c 時間限定 (}|@Arinasi(GEN3)|{) \n}|
{c ch.4の電話番号=}|ROAD4|{ \n}|
{c 時間限定 (}|@Arinasi(GEN4)|{) \n}|
{r チャンネル選択 /ch.1 /ch.2 /ch.3 /ch.4 \n}|
{s / 設定 / 取消 },
bestCH);
%bestCH @head(@getline(a,1,1),{\n});
%ok @head(@getline(a,2,1),{\n});
case(ok,
{ 1}, {
case (bestCH,
{ 1},{sROAD:=@im(ROAD);Am3:=@im(GEN)},
{ 2},{sROAD:=@im(ROAD2);Am3:=@im(GEN2)},
{ 3},{sROAD:=@im(ROAD3);Am3:=@im(GEN3)},
{ 4},{sROAD:=@im(ROAD4);Am3:=@im(GEN4)},
,{sROAD:=@im(ROAD)Am3:=@im(GEN)});
display(sROAD|{へのアクセスに変更しました。\n});
genteiT:=Am3;
case (@getchar(sROAD,1,1)={/},
{Yes},{im({Yes})},
{No},{im({No})})
},
{ 2},{},
,{im({No})});
});
};
%SEMIAUTO{
var iniMENW[3];iniMENW:={};
%loginHLP{
ID入力から「特殊な使い方」と言うのは、回線状態の影響により
ログイン後にネットから「NO CARRIER」が送られる不運な方が、
DORAを再起動して『ID入力から』の手順で
DORAを利用できる機能です。};
case (ID={}||ID={GUEST},{Yes},{PLTmemo:={No}});
loop ({
case (@linechck,
{Yes},{
loop({
SNDMSG({erande_f.snd});
select ({処理を選んでください},
Wtime4,
{
chat({Yes});
loop ({
footnote({再開},{b});
waitx({});
case (@xtype,
101, {im({No})},
201, {im({No})});
});
footnote({});
chat({No});
im({Yes});
},
{ ログイン},
{setcdir(CDIR);#DORALGIN.PLP;im({Yes})},
{ アップ・ダウン ロード},
{type({\n});preRetM;WaitMKD;CHeck:={No};
DOWNSTART;UPDOWN1;DOWNSTOP;im({Yes})
},
{ ボード&ファイルボード巡回},
{
type({\n});preRetM;DORTBBS:={Yes};
setcdir(CDIR);#DORALOOP.PLP;im({Yes});
},
{ ボード巡 回 },
{
type({\n});preRetM;DORTBBS:={BoD};
setcdir(CDIR);#DORALOOP.PLP;im({Yes});
},
{ 自由行動 },
{type({\n});preRetM;setcdir(CDIR);
#DORACHAT.PLP;im({Yes})},
{ 手動 },
{
chat({Yes});
loop ({
footnote({再開},{b});
waitx({});
case (@xtype,
101, {im({No})},
201, {im({No})});
});
footnote({});
chat({No});
im({Yes});
},
{ID入力から「特殊な使い方」},
{
SNDMSG({erande_f.snd});
select ({ID入力からのログインを実行します},
Wtime4,,
{ す る },
{loginMODE:={lessTEL};RETCD:={Start};
setcdir(CDIR);#DORALGIN.PLP},
{HELP},{HLPview(loginHLP);im({Yes})},
{ しない },
);
im({Yes})},
{ ログアウト},
{type({\n});preRetM;LogOff;DOWNSTOP;im({No})},
{DORA初期メニューへ},
{iniMENW:={end};DOWNSTOP;im({No})}
);
});
},
{No},{
loop({
SNDMSG({erande_f.snd});
select ({処理を選んでください},
Wtime4,
{im({Yes})},
{ ログイン},
{setcdir(CDIR);#DORALGIN.PLP;im({No})},
{DORA初期メニューへ},
{iniMENW:={end};DOWNSTOP;im({No})}
);
});
});
case (iniMENW,{end},{im({No})},,{im({Yes})});
});
};
/* ログインのみの処理 */
%LOGIN1 {setcdir(CDIR);#DORALGIN.PLP;
case(RETCD,{Start},
{setcdir(CDIR);#DORACHAT.PLP;DOWNSTOP;LogOff;AUTOEND},,{im({Yes})})
};
/* アップ/ダウンロード処理 */
%UPDOWN1{case(@filechk(UP2|{doraup.ctl}),
{Yes},{setcdir(CDIR);#DORAUPLD.PLP});
case(@filechk(UP2|{doradown.ctl})={Yes}||BmalON={Yes},
{Yes},{setcdir(CDIR);#DORADNLD.PLP})};
/* オンライン処理 */
%ONLINE1{
setcdir(CDIR);#DORALGIN.PLP;
case (ID={}||ID={GUEST},{Yes},{PLTmemo:={No}});
case(RETCD,{Start},
{case(PLTmemo={Yes},{Yes},{PLTMEMO});
case(UPDOWN,{first},{UPDOWN1});
setcdir(CDIR);#DORALOOP.PLP;
case(UPDOWN,{last},{UPDOWN1});
case(PLTmemo={Yes} && afMEMO<>{},{Yes},{PLTMend});
case (FREE1={ 1},
{Yes},
{setcdir(CDIR);#DORACHAT.PLP;SEMIAUTO},
{No},
{
preRetM;LogOff;wait(1);
case (DORAEND,
{stopdora},{PLTSTOP},
{stopmop},{stopterm},
{poweroff},{command({poff});im({No})},
{continue},{im({No})},
,{im({Yes})
});
});
});
};
var DAY1[24];var DAY2[10];/* ログファイルの日付*/
var Am3 [3]; /* チャンネル選択フラグ*/
var LOGFILE [12]; /* ログファイル名 */
var TELNO [20]; /* 接続電話番号 */
var RETCD [6]; /* DORALGINのリターンコード */
var upldcntl[64]; /* アップロード制御ファイル名 */
var dnldcntl[64]; /* ダウンロード制御ファイル名 */
var CHeck [3]; /* ログダウンチェックフラグ */
/* 初期設定処理 */
case (FlyLine,
{ 1},{flyline({1})},{ 2},{flyline({2})},{ 3},{flyline({3})},
{ 4},{flyline({4})},,{flyline({3})});
xon({No});
stopbit({1});
parity({None});
lineend({CR});
lineendt({CR});
flyingx({No});
dataleng({8bit});
rscs({Yes});
code({sjis});
logprint({No});
sendtype({Line});
ctrl({No});
esc({Yes});
dispecho({Yes});
code ({sjis});
OpenPort;
crmode({Yes});
/*プロトコル設定*/
case (@tail(@version,{for },{ })={Win31},
{Yes},
{case (BINty,
{X-modem},{setbin({X-modem});binop:={S}},
{X-modem-CRC},{setbin({X-modem-CRC});binop:={C}},
{X-modem-1K-CRC},{setbin({X-modem-1K-CRC});binop:={X}},
{Y-modem},{setbin({Y-modem});binop:={Y}},
{Y-modem-G},{setbin({Y-modem-G});binop:={G}},
{MLINK},{setbin({MLINK});binop:={M}},
{Z-modem},{RecDir(FSW);/*受信ディレクトリーの指定*/
/*SetZAuto({No}); Z-modem受信の自動起動無の指定*/
setbin({Z-modem});binop:={Z}},
,{setbin({Y-modem});BINty:={Y-modem};binop:={Y}}
);binop:=binop
},
{No},
{case (TBINty,
{X-modem},{binop:={S}},
{Y-modem},{binop:={Y}},
,{binop:={Y}}
);binop:=binop
});
case (@diskrem >500*1018,
{Yes},{ONLINE},
{No},
{display({ログの格納用ディレクトリの空きエリアが不足しています\n});
display({空きエリアは500KB以下です注意してください。\n});
footnote({空きエリアは500KB以下です注意してください。\n});
wait(5);ONLINE
});